GUI pushbutton with multi-function mini-button

ABSTRACT

The present invention enhances the usability of a pushbutton in a graphical user interface (GUI) by allowing for multi-function pushbuttons where the secondary function can be one of many alternatives. This allows a user to have a straight-forward graphical interface to actuating functions that does not clutter the screen, yet still has the ability to offer many combinations of functions.

FIELD OF THE INVENTION

This invention relates generally to a user interface for computersoftware. More specifically the present invention relates to a method ofallowing multiple functions to be initiated by a single buttonrepresented on a terminal device using a graphical user interface (GUI).

BACKGROUND OF THE INVENTION

In recent years the use of personal computers and PDAs (Personal DataAssistants) have increased dramatically. Only a few years ago, theaverage computer user had a college degree in computer science or dataprocessing, today personal computers are commonplace. The target oraverage user is now one who has little or no prior experience withcomputers or computer software. This is demonstrated by the use ofcomputers in the grade schools, grocery stores and countless otheraspects of everyday life.

Coincident with the increased use of personal computers and as a resultof years of software development, more and more function has beenintroduced into smaller, faster and less expensive devices. Only a fewyears ago, the only interface that a user had to the computer was acommand line interface. To use the computer, the user was required toknow the commands and to enter them onto a blank screen to get theresults he desired. If the user was not familiar with the commands thatwere available, the user was forced to look in a book for theinformation. This was a tedious and time consuming process whichprohibited the use of the computer by anyone who was not speciallytrained. As computer technology became less expensive, the marketdemanded a more friendly user interface, one that required less trainingor experience to effectively operate.

Generalized standards have arisen which define certain aspects of thecomputer screen interface. Graphical User Interface (GUI) standards havebeen documented so that applications claiming to be GUI applicationshave a similar look and feel. This allows a user to be able to predictevents that will occur when undertaking certain actions, regardless ofthe application being worked on. It reduces the requirement for trainingfor individual applications, platforms or operating systems and shortensthe time in which new applications can be mastered.

An example of GUI standards is the IBM CUA Guidelines and Architecture,Publication number SC26-4399-00 available from International BusinessMachines Corporation which cover standards for screen layout, scrollbars, menus and many other user interfaces. Other examples include TheWindows® Interface Guidelines for Software Design by MicrosoftCorporation and Human Interface Guidelines: The Apple Desktop Interface,ISBN 0-201-17753-6.

GUIs also allow the definition of on-screen pushbuttons as a metaphorfor invoking certain functions. Pushbuttons were introduced to allow theuser to click in a predefined area of the screen which is visuallydistinct to invoke a function. When the user clicks mouse button one(usually the left mouse button) on the pushbutton, also known as themouse selection button in GUI terms, a predefined function will execute.This conserves screen space in that the pushbutton does not require alarge dialog area and utilizes one or a few key words to denote thefunction. Each pushbutton occupies a small area, thereby allowingmultiple functions to be placed on a single screen without the screenappearing cluttered.

A limitation on this implementation of a pushbutton is that it causedonly a single function to be executed. The addition of more and morepushbuttons to a screen to provide more and more function is not aviable solution since, as more buttons are added to the screen, theinterface becomes crowded, confusing and less usable. A method isrequired to allow additional functions to be selected without addingmore pushbuttons to the screen.

In an effort to solve the problem of only allowing one function to beperformed by the pushbutton, a multi-function pushbutton was created.This multi-function pushbutton was created for International BusinessMachine's Pen for OS/2® software product. The pushbutton as shown inFIG. 1 consists of a rectangular larger button 101 which contains a textlabel 102 and a smaller mini-button 103. The text label denotes theprimary function and the icon 104 contained in the mini-button denotesthe secondary function. If the user clicks the button anywhere in thelarger pushbutton's area, but not on the mini-button, the text denotedfunction is invoked. If the user clicks the mini-button, both functionsare invoked with the text denoted function being invoked first, then theicon denoted function being invoked.

This was a significant improvement of the use of pushbuttons for the GUIinterface, but problems emerged in that the original mini-buttonpermitted the invocation of the text denoted function by itself or theinvocation of the text denoted function and the mini-button functiontogether. This was a usability concern since users had to know whichpart of the whole pushbutton to select. It wasn't intuitively obviouswhich part of the pushbutton would perform both functions and which partwould only perform one function. In addition, while this was asignificant improvement in the use of pushbuttons in a GUI, the originalimplementation was limited to a single icon denoted function and theuser could not temporarily disable the icon denoted function.

OBJECTS AND SUMMARY OF THE INVENTION

In view of the above, an object of the invention is to provide a userselectable mini-button function wherein the user can determine whichfunction will be performed upon selection of the mini-button.

It is another object of the invention to allow the user to alterprocessing of the button to always invoke both functions, but to allowthe user to select a null function for the mini-button.

The foregoing objects are achieved by providing a method and system ofproviding a user interface to a plurality of related functionscomprising a first display actuating button and a second displayedactuating button wherein the first actuating button allows a functionrelated to the first actuating button to execute and the secondactuating button allows the function associated with the first actuatingbutton to execute, then sequentially, the one of a plurality offunctions currently represented by the second actuating button willexecute.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows the prior art multi-function push button.

FIG. 2 shows a typical computer configuration implementing theinvention.

FIGS. 3A-D show examples of the multi-function pushbutton of the presentinvention.

FIG. 4 shows a flow chart of the present invention.

FIG. 5 is an enhancement to the flow chart of FIG. 4.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

The present invention provides an enhanced mini-button, allowing theuser to select the function that the mini-button will perform andallowing the user to invoke subtle changes in the basic operation of theoriginal pushbutton.

In the preferred embodiment, the operating system used was IBM's OS/2®.As will be obvious to one skilled in the art, this invention is alsoapplicable to other applications and operating systems which implement agraphical user interface and a pointing device for controlling thefunctions to be invoked by the user interface.

As is shown in FIG. 2, a typical configuration in which the presentinvention is implemented would include a processing unit 201, a displaydevice 202 and a pointing device 203. The processing unit could rangefrom a general purpose computer such as an IBM PS/2® or notebookcomputer for example, to a specialized PDA. The display device could beintegrated into the processing unit or could be a monitor separate fromthe processing unit. The pointing device shown in FIG. 2 is a mouse, buta pen, track ball, track point or any other pointing device could beused.

An alternative hardware implementation would be to use a `touchsensitive` screen and use a human finger as the pointing device.

In the preferred embodiment using a personal computer and a mouse, theuser can select the exact function to be invoked by the mini-buttonusing the mouse to place the pointer over the graphical mini-button andby clicking mouse button two (usually the right mouse button for righthanded operators) also known as the manipulation button in GUI terms.This will cycle through the options available for the mini-button. Anexample of this is depicted in FIG. 3. FIG. 3a shows a multi-functionpush button 301 having a primary, text denoted, function 302. Theprimary function in this instance is to `submit`. The current secondaryfunction is represented by the icon 303 and is the maximize function,therefore, if the user depresses the selection button of the pointingdevice while the pointer is located within the icon 303, the result isthat a submit is issued, then a maximize. The boxes 304 behind themini-button indicates that it is a multi-function mini-button. In thepreferred embodiment, by depressing the right mouse button, the user cancycle through the available options for the mini-button. Additionalexamples of the mini-button functions are minimize 313, as shown in FIG.3b, close 323 as shown in FIG. 3c and a null function 333 as shown inFIG. 3d.

The application implementing the pushbutton, using persistent operatingstorage mechanisms, will remember a chosen function until it issubsequently changed. As will be obvious to one skilled in the art, thisinvention is not limited to the use of a mouse. It is equally applicableto any pointing device which has the capability of identifying at leasttwo states. This is not only applicable to two different buttons orlevers on a mouse, but would also be applicable to differentiation bythe method of use of the pointing device (for instance, a single clickversus a double click or a single pen tap versus a double pen tap).

FIG. 4 shows the logical flow of the present invention. The logical flowbegins at 401. Prior to entering this flow, it has been determined thatthe pointer of the pointing device is located on the screen within a GUIpushbutton. A test is made at 405 to determine whether pointing devicebutton two has been depressed while the cursor is within the area of theGUI pushbutton, more precisely, within the pushbutton. As would beapparent to one skilled in the art, this test could be modified for usewith a pen, touch screen, or any other pointing device. If it isdetermined that button two has been depressed while the pointer iswithin the area of the GUI pushbutton, then a test is made to determinewhether a mini-button exists 410 within the GUI pushbutton underconsideration. If no mini-button exists, then control returns to step401. If a mini-button does exist within the pushbutton underconsideration, then a test is made to determine whether the pointer iscurrently within the mini-button 413. If the pointer is not within themini-button, then control returns to 401. If the pointer is within themini-button, a test is then made to determine if there are multiplemini-button functions available for that particular mini-button 415. Ifthere are not multiple mini-button functions available, then control isreturned to 401. If there are multiple mini-button functions availablethen the function represented by the icon is incremented to representthe next mini-button function available sequentially. Control is thenreturned to 401.

If, at 405, it was determined that it was not pointer button two thatwas depressed, then a test is made to determine whether pointer buttonone has been depressed while the cursor is within the area of the GUIpushbutton 425. If it has not, then control is returned to 401. Ifpointer button one has been depressed while the cursor is within thearea of the GUI pushbutton, then a test is made to determine whether amini-button exists within the pushbutton under consideration 430. If amini-button does not exist, then the primary function represented by thepushbutton is invoked 435 and the flow terminates 440. If a mini-buttondoes exist in the area represented by the pushbutton in the GUI in whichthe cursor is located, then the application first invokes the primaryfunction for the pushbutton 445, then invokes the mini-button function450, then terminates 455.

FIG. 5 shows a modification to the logical flow presented in FIG. 4.This logical flow begins at 501. Prior to entering this flow, it hasbeen determined that the pointer of the pointing device is located onthe screen within a GUI pushbutton. A test is made at 505 to determinewhether pointer button two has been depressed while the poinnter iswithin the area of the GUI pushbutton. As would be apparent to oneskilled in the art, this test could be modified for use with a pen,touch screen, or any other pointing device. If it is determined thatpointer button two has been depressed while the pointer is within thearea of the GUI pushbutton, then a test is made to determine whether amini-button exists 510 within the GUI pushbutton under consideration. Ifno mini-button exists, then control returns to step 501. If amini-button does exist within the pushbutton under consideration, then atest is made to determine whether the pointer is within the mini-button513, if the pointer is not within the mini-button, then control returnsto 501. If the pointer is within the mini-button, then a test is made todetermine whether there are multiple mini-button functions available forthat particular mini-button 515. If there are not multiple mini-buttonfunctions available, then control is returned to 501. If there aremultiple mini-button functions available then the function representedby the icon is incremented to represent the next mini-button functionavailable sequentially. Control is then returned to 501.

If, at 505, it was determined that it was not pointer button two thatwas depressed, then a test is made to determine whether pointer buttonone has been depressed while the pointer is within the area of the GUIpushbutton 525. If it has not, then control is returned to 501. Ifpointer button one has been depressed while the pointer is within thearea of the GUI pushbutton, then a test is made to determine whether amini-button exists within the pushbutton under consideration 530. If amini-button does not exist, then the primary function represented by thepushbutton is invoked 535 and the flow terminates 540. If a mini-buttondoes exist in the area represented by the pushbutton in the GUI in whichthe pointer is located, then a test is made to determine whether thepointer is located within the mini-button 545. If the pointer is notlocated within the mini-button (but is still located within thepushbutton) then the application invokes the primary function 535 andterminates 540. If the pointer is located within the mini-button of thepushbutton, then the application first invokes the primary function forthe pushbutton 550, then invokes the mini-button function 555, thenterminates 560.

In addition to meeting the objectives of the invention, theimplementation depicted by FIG. 4 reduces the number of button tapsnecessary to perform the desired functions in addition to relaxing theprecision and manual dextarity necessary when selecting the desiredfunction. This saves time and effort of the user.

What is claimed is:
 1. A method of providing a computer graphical userinterface, utilizing a screen interface and a pointing devicecontrolling a pointer, to a plurality of related functionscomprising:selecting a first displayed pushbutton, representing a firstfunction, through the appropriate positioning of the pointer by way ofsaid pointing device; determining whether a mini-button exists withinsaid first displayed pushbutton; selecting one of a plurality of secondfunctions available for said mini-button by using said pointing device;invoking said first function and said selected second functionsequentially by causing the pointing device to generate a selectionsignal while the pointer is positioned within either the pushbutton orthe mini-button.
 2. The method of claim 1 wherein one of said pluralityof functions is chosen by clicking on button two of the pointing deviceto cycle through the plurality of functions.
 3. The method of claim 1wherein one of said plurality of functions is chosen by applyingpressure to a touch screen in the area beside or ontop of themini-button indicated by shadow boxes.
 4. The method of claim 2 whereinone of said plurality of functions is chosen by double-clicking apointing device.
 5. The method of claim 1 wherein the function relatedto said second actuating button can be a null function.
 6. A method ofproviding a computer graphical user interface, utilizing a screeninterface and a pointing device controlling a pointer, to a plurality ofrelated functions comprising:selecting a first displayed pushbutton,representing a first function, through the appropriate positioning ofthe pointer by way of said pointing device; determining whether amini-button exists within said first displayed pushbutton; selecting oneof a plurality of second functions available for said mini-button byusing said pointing device; invoking said first function if the pointingdevice is caused to generate a selection signal while the pointer ispositioned within the pushbutton but not within the mini-button; and,invoking said first function and said selected second functionsequentially by causing the pointing device to generate a selectionsignal while the pointer is positioned within the mini-button.
 7. A dataprocessing system comprising:a processing unit; a display area; apointing device; and, a graphical user interface further comprising:means for actuating a graphical pushbutton related to a first function;means for actuating a graphical mini-button related to one of aplurality of second functions.
 8. The data processing system of claim 7wherein a desired second function is chosen from said plurality ofsecond functions by a predefined "clicking" pattern using said pointingdevice.
 9. The data processing system of claim 8 wherein said predefined"clicking" pattern is a single click with mouse button two.
 10. The dataprocessing system of claim 9 wherein said predefined "clicking" patternis a double click with a pen or a single "click" with the pen whileholding a pen button down.
 11. The data processing system of claims 7 or8 wherein one of said second functions is a null function.
 12. The dataprocessing system of claim 11 wherein either the means for actuating thegraphical pushbutton or the means for actuating the graphicalmini-button will cause both the first function and the second functionto be invoked.
 13. A computer program product including a graphical userinterface comprising:a computer-readable storage medium having computerreadable program code means embodied in said medium, said computerreadable program code means comprising: computer instruction means formeans for actuating a graphical pushbutton related to a first function;computer instruction means for actuating a graphical mini-button relatedto one of a plurality of second functions.
 14. A computer programproduct as claimed in claim 13, wherein a desired second function ischosen from said plurality of second function by a predefined "clicking"pattern using a pointing means.